pub fn add(left: u64, right: u64) -> u64 {
    left + right
}

pub fn add_two(a: i32,b: i32) -> i32 {
    internal_add_two(a,b)
}

fn internal_add_two(a: i32,b: i32) -> i32 {
    a + b
}



#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    // fn it_works() {
    //     let result = add(2, 2);
    //     assert_eq!(result, 4);
    // }
    // #[test]
    fn it_works() -> Result<(), String> {
        if 2 + 2 == 4 {
            Ok(())
        } else {
            Err(String::from("two plus two does not equal four"))
        }
    }

    #[test]
    fn internal(){
        // 测试函数， internal_add_two 为私有函数，所以无法直接访问，但是可以通过 super::* 来访问

        assert_eq!(4, internal_add_two(2,2));
    }
}
